package leetcode100;

/**
 * @author shkstart
 * 给定两个32位整数n和m，同时给定i和j，
 * 将m的二进制数位插入到n的二进制的第j到第i位,
 * 保证n的第j到第i位均为零，且m的二进制位数小于等于i-j+1，
 * 其中二进制的位数从0开始由低到高。
 * @create 2022-12-05-22:42
 */
public class Meme12_1 {
    /**
     i j
     n:1024：100000000 00 m:19 ： 10011
     要把n的二进制值插入m的第j位到第i位，只需要把n先右移j位，
     然后再进行或运算（|）即可。
     n: 10000000000
     m: 00001001100
     10001001100

     */
    public int binInsert(int n, int m, int j, int i) {
        m=m<<i;
        n = (n|m);
        return n;

    }

}
